視頻CDN是一種旨在支持視頻流傳輸的 CDN。將 CDN 用于流式視頻有助于流到達世界各地的觀眾,最大限度地減少延遲和緩沖時間,并確保流的源或源服務器不會被請求淹沒。
雖然大多數 CDN 能夠將視頻內容與 HTML、圖像、JavaScript、CSS 樣式表和其他 Web 內容一起緩存和交付,但視頻 CDN 可以專門用于流式視頻。例如,Netflix 建立了自己的分布式網絡,稱為 Open Connect,以更有效地交付視頻內容。
什么是CDN?
內容交付網絡(CDN) 是一組連接的服務器,它們通過 Internet緩存和交付內容。CDN 遍布世界各地,與原始服務器或單個數據中心相比,它們能夠更有效地向更廣泛的人群提供內容。每當用戶從使用 CDN 的網站請求內容時,CDN 都會緩存內容;到“緩存”的意思是臨時存儲一個文件。
假設 Bob 在紐約紐約市的服務器上托管了一個網站 bobisgreat.example.com。當愛麗絲在紐約奧爾巴尼(約 250 公里外)訪問該網站時,它會快速加載,因為網站內容只需傳播 250 公里。但是,當 Carlos 嘗試從他位于加利福尼亞州洛杉磯的家中(大約 4,800 公里外)加載 bobisgreat.example.com 時,他必須等待更長的時間才能加載該網站。
如果 Bob 使用 CDN 服務,CDN 可以將他的網站內容緩存在靠近 Alice 和 Carlos 的位置。假設 Bob 的 CDN 將他的網站緩存在奧爾巴尼和洛杉磯以及紐約市的數據中心。現在 Alice 和 Carlos 幾乎不需要等待 bobisgreat.example.com 加載到他們的瀏覽器中。
為什么使用 CDN 流式傳輸視頻?
最小化與觀眾的距離可減少延遲
上述相同的原理適用于流式視頻。視頻內容離觀看者越近,加載和播放的速度就越快。CDN 的服務器可能比流的源點更靠近任何給定的查看器。
源站服務器沒有不堪重負
使用 CDN 的多個服務器意味著流源的服務器不會因流請求而不堪重負。一組 200 臺服務器可以為成千上萬的觀眾處理流式視頻,這比單個服務器要好得多。
流媒體內容不超過網絡帶寬
一個網絡一次只能有一定數量的數據通過。這個最大量稱為“帶寬”。如果通過網絡的數據量超過其帶寬,則數據傳輸速度會大大減慢,就像將汽車限制在一條車道上會降低高速公路上的交通速度一樣。如果流是從 CDN 的多個分布式服務器傳送的,那么任何一個網絡都不太可能以這種方式被流量淹沒。
如何緩存流?
流式傳輸將視頻文件從服務器連續傳輸到客戶端。但是,流式視頻不會作為一個連續文件進入用戶的設備。相反,流媒體視頻被分成更小的部分。每個片段都由用戶的視頻播放器加載并按正確的順序放置。
每個單獨的視頻片段都可以由 CDN 緩存,就像圖像、HTML 頁面或 JavaScript 代碼片段可以由 CDN 緩存一樣。當用戶請求流時,CDN 會在視頻片段從流源到達時立即開始緩存它們。當下一個用戶請求相同的流時,CDN 可以從緩存中傳遞這些片段,這要快得多。
CDN 如何緩存直播?
對于視頻點播流,其中視頻從存儲交付,緩存視頻相當簡單:CDN 從源服務器請求存儲的視頻,源服務器交付它,然后 CDN 緩存視頻。
在實時流媒體中,沒有準備好的視頻存儲版本。然而,過程是相似的。唯一的區別是,CDN 會在實時創建視頻片段時對其進行緩存,而不是緩存之前創建的視頻。然后,流從緩存而不是直接從流的源提供給查看者。
盡管大多數觀眾必須額外等待幾秒鐘才能緩存每個片段,但如果有效完成,這實際上可以使流更接近“實時”,而不是直接從源服務器獲取流。因為 CDN 比源服務器更接近觀眾,所以從緩存中提供流可以減少往返源服務器的往返時間 ( RTT )。此外,使用 CDN 降低了帶寬問題會減慢觀眾直播流的可能性。